package park;

import java.util.Calendar;
import java.util.Date;

public class J18StringBuilderCalendar {

	public static void main(String[] args) {
		//문자열 합치고 싶을때 사용
		//소스는 길어졌지만 메모리 누수는 줄어듬
		StringBuilder sb = new StringBuilder();
		sb.append("Hello, ").append("java").append("!!");
		System.out.println(sb.toString());
		
		//날짜 시간 다루기
		//date 기능 쓸라면 import java.util.Date; 을 해줘야함.
		Date today = new Date();
		System.out.println(today);
		System.out.println(today.toLocaleString()); //실행은 되지만 앞으로 버전에서는 지원안될 기능
		//거주 국가에 따라서 시간,날짜 출력하려면 toLocaleString() 사용
		//DateFormat 클래스를 사용할 것을 추천
		
		//Date는 JDK 1.0 부터 지원하기 시작
		//하지만 , 다양한 날짜/시간 처리하기에 기능이 너무 부족한 탓에 JDK1.1부터 Calendar 클래스가 새로 추가
		//Date 클래스의 대부분의 기능은 deprecated()됨
		//deprecated = 중요도가 떨어져 더 이상 사용되지 않고 앞으로는 사라지게 될 (컴퓨터 시스템 기능 등)
		//하지만, Calendar 클래스를 이용하는 경우 날짜/시간 처리에 비용이 많이 든다는 것이 단점
		//Calendar 는 cpu자원 , 램 메모리를 많이 잡아먹음
		
		
		Calendar now = Calendar.getInstance();
		int year = now.get(Calendar.YEAR);
		int month = now.get(Calendar.MONTH)+1;
		int day = now.get(Calendar.DAY_OF_MONTH);
		int dayOfDay = now.get(Calendar.DAY_OF_WEEK);
		int hour = now.get(Calendar.HOUR);
		int hourOfDay = now.get(Calendar.HOUR_OF_DAY);
		int ampm = now.get(Calendar.AM_PM);
		int minute = now.get(Calendar.MINUTE);
		int second = now.get(Calendar.SECOND);
		int millisecond = now.get(Calendar.MILLISECOND);
		
		sb = new StringBuilder();
		sb.append(year).append("-").append(month).append("-").append(day).append("-")
		.append(dayOfDay).append("-").append(hour).append("-").append(hourOfDay).append("-")
		.append(ampm).append("-").append(minute).append("-").append(second).append("-")
		.append(millisecond);
		System.out.println(sb.toString());
		
		switch(dayOfDay){
			
			case Calendar.SUNDAY : System.out.println("일요일");break;
			case Calendar.MONDAY : System.out.println("월요일");break;
			case Calendar.TUESDAY : System.out.println("화요일");break;
			case Calendar.WEDNESDAY : System.out.println("수요일");break;
			case Calendar.THURSDAY : System.out.println("목요일");break;
			case Calendar.FRIDAY : System.out.println("금요일");break;
			case Calendar.SATURDAY : System.out.println("토요일");
			
		}
		
		System.out.println("("+hourOfDay+"시)");
		
		
		StringBuilder sb1 = new StringBuilder();
		if(ampm==Calendar.AM){
			System.out.println("오전");
		}else{
			System.out.println("오후");
			
			sb1.append(hour).append("시").append(minute).append("분").append(second)
			.append("초").append(millisecond);
			System.out.println(sb1.toString());
			
		}
		
		
	}

}
